import qs from 'qs'
import { ElMessage } from "element-plus"
/**
 * @description 获取表格数据
 * @param {object} root 组件里面的this
 * @param {string} url  请求的地址
 * @param {object} params 参数
 */
export function getData(root, url, params) {
    root.service.get(url, {
            params: params || {}
        })
        .then(res => {
            if (res.data.status === 200) {
                root.tableData = res.data.data;
            }
        })
        //捕获错误
        .catch((err) => {
            throw err
        })
}
/**
 * @description 信息列表新增和修改的方法
 * @param {object} root 组件里面的 this
 * @param {string} methods  请求方式
 * @param {string} url  请求地址
 * @param {object} form  参数
 * @param {function} callback  是对列表进行渲染的回调的函数
 */
export function changeInfo(root, methods, url, form, callback) {
    let data = qs.stringify(form)
    root.service[methods](url, data)
        .then(res => {
            if (res.data.status === 200) {
                callback(root, url);
                root.dialogFormVisible = false;
                root.$refs["form"].resetFields();
                ElMessage.success(res.data.message);
            }
        })
}
/**
 * @description 删除的方法
 * @param {object} root 组件里面的this
 * @param {string} url  请求地址
 * @param {number} id  需要删除的唯一值
 * @param {function} callFun  是对列表进行渲染的回调的函数
 */
export function delDate(root, url, id, callFun) {
    root.$alert("你确定要删除该数据吗?", "提示", {
            confirmButtonText: "确定",
            callback: () => {
                root.service.delete(`${url}/${id}`).then((res) => {
                    if (res.data.status === 200) {
                        callFun(root, url)
                        root.$message.success(res.data.message);
                    }
                });
            },
        })
        //捕获错误
        .catch((err) => {
            throw err
        });
}
/**
 * @description 获取表格数据
 * @param {object} root 组件里面的 this
 * @param {string} url  请求的地址
 * @param {object} params 参数
 * @param {object} arr 需要转字典的字段
 */
export function getTableData(root, url, params, arr) {
    root.service.get(url, {
            params: params || {}
        })
        .then(res => {
            if (res.data.status === 200) {
                root.tableData = res.data.data;
                root.total = res.data.total
                root.tableData.map(item => {
                    arr.map(aitem => {
                        item[aitem] ? item[aitem + '_text'] = '是' : item[aitem + '_text'] = '否'
                    })
                })
            }
        })
        //捕获错误
        .catch((err) => {
            throw err
        })
}